(function ($, pilote, undefined){

    /************************/
    /* VARIABLES DE L'OBJET */
    /************************/
    
    // Variable 'alias' permettant de ne pas tout le temps à avoir a réécrire le prototype
    var proto = pilote.util.createClass('Card.object').prototype;
    
    // Variables de gestion des cartes
    proto.id = null;
    proto.name = null;
    proto.color = null;
        
    /***************************/
    /* CONSTRUCTEUR DE L'OBJET */
    /***************************/
    /**
     * Constructeur de l'objet
     * @param int id : identifiant unique de la carte
     * @param string name : nom de la carte
     * @param string color : couleur du fond de la carte
     */
    proto.initialize = function (id, name, color) {
        var self = this;
        // Mise en place des éléments
        self.id = id;     
        self.name = name;
        self.color = color;
    }; 
   
    /*********************************/
    /* METHODES/FONCTIONS DE L'OBJET */
    /*********************************/
    
    proto.toString = function (){
    	var self = this;
    	// Gestion des cartes par défaut
		if (self.name == 'default'){
			return '<img src="/cartine/images/collection/carte_default.png"/>';
		}else{
			// Gestion de la couleur des cartes
			if (self.color != null){
				return '<img src="/cartine/images/collection/%s.png" class="%s" name="%s"/>'.format(self.name,self.color,self.id);
			}else{
				return '<img src="/cartine/images/collection/%s.png" name="%s"/>'.format(self.name,self.id);
			}
		}
    }
    
})(window.jQuery, window.pilote);

/**
 * Fonction de création d'une liste d'objet "Card"
 * @param array listElement : liste des éléments constitutifs d'un objet "Card"
 * @return array : liste d'objet "Card"
 */
function createCardList(listElement) {
	// Variable
	var retour = [];
	// Création du deck
	for ( var indx = 0 ;indx < listElement.length;indx++ ){
		// Gestion des cartes par défaut
		// TODO : refondre
		if (listElement[indx] instanceof Array){
			var card = listElement[indx][0],
				color = listElement[indx][1];
		}else{
			var card = listElement[indx],
				color = null;
		}
		retour.push(new Card.object(indx,card,color));
	}
	// Retour
	return retour;
}
